perm filename LOSS.1[TIM,LSP]10 blob sn#715171 filedate 1983-06-17 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(declare 
C00006 00003	(baz 50)
C00007 00004
C00008 00005
C00024 ENDMK
CāŠ—;
(declare 
 (fasload meter fas))
(declare 
 (setq meter:count-only t))

;(meter:meter baz
;	     (meter-funs ((+ "+'s")(= "='s"))
;			 (defun baz (n)
;				(do ((n n (1- n))
;				     (a 0))
;				    ((= n 0) a)
;				    (foo n)
;				    (setq a (+ a n)))) )
;	     (meter-funs ((+ "+'s")(= "='s"))
;			 (defun foo (n)
;				(do ((n n (1- n))
;				     (a 0))
;				    ((= n 0) a)
;				    (setq a (+ a n))))))

(meter:meter baz
	     (meter-funs ((+ "+'s")(= "='s")(foo "Calls to FOO"))
			 (defun baz (n)
				(mn "baz" baz)
				(do ((n n (1- n))
				     (a 0))
				    ((= n 0) a)
				    (foo n)
				    (setq a (+ a n)))))   
 	     (meter-funs ((+ "+'s")(= "='s"))
			 (defun foo (n)
				(mn "Foo" foo)
				(do ((n n (1- n))
				     (a 0))
				    ((= n 0) a)
				    (setq a (+ a n))))))


(meter:meter baz
	     (meter-funs ((cdr "cdr")(car "car")
				     (foo "Foo")(setq "Setq")
				     (cdar "car"car)(ztesch "Ztesch")
				     (cdar "cdr" cdr))
			 (defun baz (l)
				(setq l (ztesch l))
				(foo (car l)
				     (cdr l)
				     (cdar l)))))


;(baz 50)
;(meter:report-baz)
;Statistics
;= <calls> (<percentage>) [runtime (<percentage>)]
;
;Meter for: BAZ
;='s = 51 (33.77%) [0.0 (0.0%)]
;Calls to FOO = 50 (33.11%) [0.06 (100.0%)]
;+'s = 50 (33.11%) [0.0 (0.0%)]
;Total = 151	0.06
;
;Meter for: FOO
;='s = 1325 (50.96%) [0.02 (64.52%)]
;+'s = 1275 (49.04%) [0.011 (35.48%)]
;Total = 2600	0.031
;T 
;(baz 50)
;(meter:report-baz)
;Statistics
= <calls> (<percentage>)
;
;Meter for: BAZ
;='s = 51 (33.77%)
;Calls to FOO = 50 (33.11%)
;+'s = 50 (33.11%)
;Total = 151
;
;Meter for: FOO
;='s = 1325 (50.96%)
;+'s = 1275 (49.04%)
;Total = 2600

Meter for: MATCH
Cars = 1319800 (34.63%) [10.632 (19.37%)]
Eqs = 755700 (19.83%) [6.953 (12.67%)]
Nulls = 504100 (13.23%) [4.369 (7.96%)]
Cdrs = 483400 (12.68%) [3.852 (7.02%)]
Conses = 239200 (6.28%) [21.24 (38.69%)]
Char1 = 226800 (5.95%) [6.777 (12.35%)]
MATCH = 213600 (5.6%)
Nconcs = 69000 (1.81%) [1.071 (1.95%)]
Returns = 0 (0.0%) [0.0 (0.0%)]
Total = 3811600	[54.894]

(meter:meter puzzle
 (meter-funs #.(all-objs)
(defun fit (i j) (store (puzzle (+ i j)) (p (+ i j)(* i j))))))))

(untrace %match)
(grindef remove)


(DEFUN REMOVE (I J) 
   (METER:INC METER:PUZZLE-COUNT-ARRAY 12 1)
   (LET ((END (PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 1 1)
		     (PIECEMAX I))))
	(DO ((K 0
		(PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 2 1)
		       (1+ K)))) 
	    ((PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 3 1)
		    (> K END))) 
	 (COND
	  ((PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 4 1) (P I K))
	   ((LAMBDA (G0069) 
	      (PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 7 1)
		     (STORE (PUZZLE G0069) NIL)))
	    (+ J K)))))
	((LAMBDA (G0070) 
	   (PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 8 1)
		  (STORE (PIECECOUNT (CLASS I)) G0070)))
	 (+ ((LAMBDA (G0071) 
	       (PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 9 1)
		      (PIECECOUNT G0071)))
	     (PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 10 1)
		    (PROGN (METER:INC METER:PUZZLE-COUNT-ARRAY 10 1)
			   (CLASS I))))
	    1))))
*